package model

import (
	"gorm.io/gorm"
	"time"
)

type Goods struct {
	Id          uint           `gorm:"column:id;type:bigint(20) UNSIGNED;comment:商品id;primaryKey;not null;" json:"id"`                           // 商品id
	GoodsNo     string         `gorm:"column:goods_no;type:varchar(50);comment:商品编号;not null;" json:"goods_no"`                                  // 商品编号
	GoodsName   string         `gorm:"column:goods_name;type:varchar(20);comment:商品名称;not null;" json:"goods_name"`                              // 商品名称
	GoodsText   string         `gorm:"column:goods_text;type:varchar(150);comment:商品描述;not null;" json:"goods_text"`                             // 商品描述
	GoodsPrice  float64        `gorm:"column:goods_price;type:decimal(10, 2);comment:商品价格;not null;" json:"goods_price"`                         // 商品价格
	GoodsNum    uint           `gorm:"column:goods_num;type:bigint(20) UNSIGNED;comment:商品库存;not null;" json:"goods_num"`                        // 商品库存
	GoodsImg    string         `gorm:"column:goods_img;type:varchar(255);comment:商品图片;not null;" json:"goods_img"`                               // 商品图片
	GoodsType   string         `gorm:"column:goods_type;type:enum('数码', '服饰', '玩具', '生活');comment:商品类型;not null;" json:"goods_type"`             // 商品类型
	GoodsStatus string         `gorm:"column:goods_status;type:enum('预售', '出售', '售空');comment:商品状态;not null;" json:"goods_status"`               // 商品状态
	CreatedAt   time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt   time.Time      `gorm:"column:updated_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 更新时间
	DeletedAt   gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

type GoodsItems struct {
	Id         uint           `gorm:"column:id;type:bigint(20) UNSIGNED;comment:商品详情id;primaryKey;not null;" json:"id"`                         // 商品详情id
	GoodsId    uint           `gorm:"column:goods_id;type:bigint(20) UNSIGNED;comment:商品id;not null;" json:"goods_id"`                          // 商品id
	LunchType  string         `gorm:"column:lunch_type;type:enum('官方标配', '套餐一');comment:套餐;not null;" json:"lunch_type"`                        // 套餐
	ItemNo     string         `gorm:"column:item_no;type:varchar(11);comment:规格编号;not null;" json:"item_no"`                                    // 规格编号
	Colour     string         `gorm:"column:colour;type:enum('黑色', '红色', '金色');comment:颜色;not null;" json:"colour"`                             // 颜色
	Place      string         `gorm:"column:place;type:varchar(50);comment:商品产地;not null;" json:"place"`                                        // 商品产地
	UserPerson string         `gorm:"column:user_person;type:enum('未成年', '成年');comment:适用人群;not null;" json:"user_person"`                      // 适用人群
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 更新时间
	DeletedAt  gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

type Others struct {
	Id          uint      `gorm:"column:id;type:int(11) UNSIGNED;comment:其他设置id;primaryKey;not null;" json:"id"`                            // 其他设置id
	GoodsId     uint      `gorm:"column:goods_id;type:int(11) UNSIGNED;comment:商品id;not null;" json:"goods_id"`                             // 商品id
	GoodsItemId uint      `gorm:"column:goods_item_id;type:int(11) UNSIGNED;comment:商品详情id;not null;" json:"goods_item_id"`                 // 商品详情id
	Server      string    `gorm:"column:server;type:enum('允许买家申请退货', '7天无理由', '报价');comment:售后;not null;" json:"server"`                    // 售后
	Status      string    `gorm:"column:status;type:enum('立即上架', '暂不上架');comment:上架设置;not null;" json:"status"`                             // 上架设置
	CreatedAt   time.Time `gorm:"column:created_at;type:datetime(3);comment:开售时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 开售时间
	UpdatedAt   time.Time `gorm:"column:updated_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 更新时间
}
